actor.set_easing_mode(params.mode);
delete params.mode;
- let cleanup = () => Meta.enable_unredirect_for_display(global.display);
+ const prepare = () => {
+ Meta.disable_unredirect_for_display(global.display);
+ global.begin_work();
+ };
+ const cleanup = () => {
+ Meta.enable_unredirect_for_display(global.display);
+ global.end_work();
+ };
let callback = _makeEaseCallback(params, cleanup);
// cancel overwritten transitions
.find(t => t !== null);
if (transition && transition.delay)
- transition.connect('started', () => Meta.disable_unredirect_for_display(global.display));
+ transition.connect('started', () => prepare());
else
- Meta.disable_unredirect_for_display(global.display);
+ prepare();
if (transition) {
transition.set({ repeatCount, autoReverse });
if (actor instanceof Clutter.Actor && !actor.mapped)
duration = 0;
- let cleanup = () => Meta.enable_unredirect_for_display(global.display);
+ const prepare = () => {
+ Meta.disable_unredirect_for_display(global.display);
+ global.begin_work();
+ };
+ const cleanup = () => {
+ Meta.enable_unredirect_for_display(global.display);
+ global.end_work();
+ };
let callback = _makeEaseCallback(params, cleanup);
// cancel overwritten transition
if (!isReversed)
obj[prop] = target;
- Meta.disable_unredirect_for_display(global.display);
+ prepare();
callback(true);
return;
transition.set_to(target);
if (transition.delay)
- transition.connect('started', () => Meta.disable_unredirect_for_display(global.display));
+ transition.connect('started', () => prepare());
else
- Meta.disable_unredirect_for_display(global.display);
+ prepare();
transition.connect('stopped', (t, finished) => callback(finished));
}